#include <iostream>
#include <stack>
using namespace std;
int n;
const int N=1e6+10;
int a[N],b[N],c[N];
int rret[N],lret[N];
void test()
{
	stack<int> st;
	for(int i=1;i<=n;i++)
	{
		while(st.size()&&a[st.top()]<=a[i])st.pop();
		if(st.size())lret[i]=st.top();
		st.push(i);
	}
	while(st.size())st.pop();
	for(int i=n;i>=1;i--)
	{
		while(st.size()&&a[st.top()]<=a[i])st.pop();
		if(st.size())rret[i]=st.top();
		st.push(i);
	}

}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i]>>b[i];
	}
	test();
	int s=0;
		for(int i=1;i<=n;i++)
	{
		c[rret[i]]+=b[i];
		c[lret[i]]+=b[i];
	}
	for(int i=1;i<=n;i++)
	s=max(c[i],s);
	cout<<s<<endl;
	return 0;
}
